package mode.design_mode_11_observer_pattern;

import java.util.Vector;

/**
 * ***********************************************************
 *
 * @类名 : controller.design_mode_11_observer_pattern.类名
 * @DESCRIPTION : 被观察者
 * @AUTHOR :  一个风情万种的男子
 * @DATE : 2016/4/25
 * ***********************************************************
 */
public abstract class Product {

    //插入若干间谍（观察者）--数组
    private Vector<Observer> observerVector = new Vector<Observer>();

    //增加一个观察者
    public void addObserver(Observer observer) {
        System.out.println("Product.addObserver");
        this.observerVector.add(observer);
    }

    //删除一个观察者
    public void delObserver(Observer observer) {
        System.out.println("Product.delObserver");
        this.observerVector.remove(observer);
    }

    //通知所有观察者
    public void notifyAllObservers() {
        System.out.println("Product.notifyAllObservers");
        for (Observer observer : observerVector) {
            observer.update();
        }
    }
}
